from flask import Flask, render_template,request
from pyecharts.charts import Bar
from pyecharts.charts import Geo
from pyecharts.charts import Map
from pyecharts.globals import ChartType, SymbolType
from pyecharts import options as opts
import pandas as pd
import matplotlib.pyplot as plt
import plotly as py
import plotly.graph_objs as go
import plotly.graph_objects as go
from function import payment
from pyecharts.faker import Faker
from pyecharts.charts import WordCloud
from pyecharts.charts import Grid, Liquid
from pyecharts.commons.utils import JsCode
from pyecharts.charts import Funnel
from pyecharts.faker import Faker




# 前期数据准备
# 1.读数据
df = pd.read_csv ("去哪儿2020年五一旅游数据.csv", encoding = "utf8", sep=",")
# 2.数据清洗
df0 = df.drop(['Unnamed: 0','Unnamed: 0.1'],axis=1)                  # 删除不需要的数据
df0.columns = ['景点名称','星级','评分','介绍','经纬度','所在地区','儿童旅客量','销售量','门票']    # 表格列名重命名
df1 = df0.drop_duplicates(['景点名称']).reset_index()              # 删除景点名称 重复值

# 将地区细分为省、市、区
district = df1['所在地区'].tolist()
地区详情 = [ x.split("·") for x in district] 
省_list = [i[0] for i in 地区详情]
市_list = [i[1] for i in 地区详情]

for i in 地区详情:
    if len(i) >= 4:
        a = i
        del a[3]
    elif len(i) < 3:
        b = i
        b.append('NaN')
区_list = [i[2] for i in 地区详情]

# 将处理好的省、市、区数据添加进表格里
df1['省'],df1['市'],df1['区'] = [省_list,市_list,区_list]
df_new = df1

star_list = ['5A', '4A','3A', '普通']

pivot_5A = df_new[df_new.星级.str.contains('5A')].groupby(['省']).agg({"景点名称":["count"]}).reset_index()
pivot_4A = df_new[df_new.星级.str.contains('4A')].groupby(['省']).agg({"景点名称":["count"]}).reset_index()
pivot_3A = df_new[df_new.星级.str.contains('3A')].groupby(['省']).agg({"景点名称":["count"]}).reset_index()
pivot_无 = df_new[df_new.星级.str.contains('无')].groupby(['省']).agg({"景点名称":["count"]}).reset_index()

a=pivot_5A['省'].tolist()
a.insert(22,'澳门')
a.insert(-2,'香港')
a.insert(4,'台湾')
b=pivot_5A['景点名称']['count'].tolist()
b.insert(22,0)
b.insert(-2,0)
b.insert(4,0)
dict_5A = dict(zip(a,b))
list(dict_5A.keys())

a1=pivot_4A['省'].tolist()
a1.insert(22,'澳门')
a1.insert(-2,'香港')
a1.insert(4,'台湾')
b1=pivot_4A['景点名称']['count'].tolist()
b1.insert(22,0)
b1.insert(-2,0)
b1.insert(4,0)
dict_4A = dict(zip(a1,b1))

a2=pivot_3A['省'].tolist()
a2.insert(-2,'香港')
a2.insert(4,'台湾')
b2=pivot_3A['景点名称']['count'].tolist()
b2.insert(-2,0)
b2.insert(4,0)
dict_3A = dict(zip(a2,b2))

dict_无 = dict(zip(pivot_无['省'],pivot_无['景点名称']['count']))

华北地区_5A_dict = { k: v for k, v in dict_5A.items() if k=='北京' or k=='天津'  or k=='河北' or k=='山西' or k=='内蒙古'}
华北地区_4A_dict = { k: v for k, v in dict_4A.items() if k=='北京' or k=='天津'  or k=='河北' or k=='山西' or k=='内蒙古'}
华北地区_3A_dict = { k: v for k, v in dict_3A.items() if k=='北京' or k=='天津'  or k=='河北' or k=='山西' or k=='内蒙古'}
华北地区_无_dict = { k: v for k, v in dict_无.items() if k=='北京' or k=='天津'  or k=='河北' or k=='山西' or k=='内蒙古'}

华南地区_5A_dict = { k: v for k, v in dict_5A.items() if k=='广东' or k=='广西'  or k=='海南'}
华南地区_4A_dict = { k: v for k, v in dict_4A.items() if k=='广东' or k=='广西'  or k=='海南'}
华南地区_3A_dict = { k: v for k, v in dict_3A.items() if k=='广东' or k=='广西'  or k=='海南'}
华南地区_无_dict = { k: v for k, v in dict_无.items() if k=='广东' or k=='广西'  or k=='海南'}

华东地区_5A_dict = { k: v for k, v in dict_5A.items() if k=='上海' or k=='江苏'  or k=='浙江' or k=='山东' or k=='安徽' or k=='江西' or k=='福建'}
华东地区_4A_dict = { k: v for k, v in dict_4A.items() if k=='上海' or k=='江苏'  or k=='浙江' or k=='山东' or k=='安徽' or k=='江西' or k=='福建'}
华东地区_3A_dict = { k: v for k, v in dict_3A.items() if k=='上海' or k=='江苏'  or k=='浙江' or k=='山东' or k=='安徽' or k=='江西' or k=='福建'}
华东地区_无_dict = { k: v for k, v in dict_无.items() if k=='上海' or k=='江苏'  or k=='浙江' or k=='山东' or k=='安徽' or k=='江西' or k=='福建'}

华中地区_5A_dict = { k: v for k, v in dict_5A.items() if k=='湖北' or k=='湖南'  or k=='河南'}
华中地区_4A_dict = { k: v for k, v in dict_4A.items() if k=='湖北' or k=='湖南'  or k=='河南'}
华中地区_3A_dict = { k: v for k, v in dict_3A.items() if k=='湖北' or k=='湖南'  or k=='河南'}
华中地区_无_dict = { k: v for k, v in dict_无.items() if k=='湖北' or k=='湖南'  or k=='河南'}

西南地区_5A_dict = { k: v for k, v in dict_5A.items() if k=='四川' or k=='重庆'  or k=='贵州' or k=='云南' or k=='西藏'}
西南地区_4A_dict = { k: v for k, v in dict_4A.items() if k=='四川' or k=='重庆'  or k=='贵州' or k=='云南' or k=='西藏'}
西南地区_3A_dict = { k: v for k, v in dict_3A.items() if k=='四川' or k=='重庆'  or k=='贵州' or k=='云南' or k=='西藏'}
西南地区_无_dict = { k: v for k, v in dict_无.items() if k=='四川' or k=='重庆'  or k=='贵州' or k=='云南' or k=='西藏'}

西北地区_5A_dict = { k: v for k, v in dict_5A.items() if k=='陕西' or k=='甘肃'  or k=='新疆' or k=='青海' or k=='宁夏'}
西北地区_4A_dict = { k: v for k, v in dict_4A.items() if k=='陕西' or k=='甘肃'  or k=='新疆' or k=='青海' or k=='宁夏'}
西北地区_3A_dict = { k: v for k, v in dict_3A.items() if k=='陕西' or k=='甘肃'  or k=='新疆' or k=='青海' or k=='宁夏'}
西北地区_无_dict = { k: v for k, v in dict_无.items() if k=='陕西' or k=='甘肃'  or k=='新疆' or k=='青海' or k=='宁夏'}

东北地区_5A_dict = { k: v for k, v in dict_5A.items() if k=='辽宁' or k=='吉林'  or k=='黑龙江'}
东北地区_4A_dict = { k: v for k, v in dict_4A.items() if k=='辽宁' or k=='吉林'  or k=='黑龙江'}
东北地区_3A_dict = { k: v for k, v in dict_3A.items() if k=='辽宁' or k=='吉林'  or k=='黑龙江'}
东北地区_无_dict = { k: v for k, v in dict_无.items() if k=='辽宁' or k=='吉林'  or k=='黑龙江'}

港澳台地区_5A_dict = { k: v for k, v in dict_5A.items() if k=='香港' or k=='澳门'  or k=='台湾'}
港澳台地区_4A_dict = { k: v for k, v in dict_4A.items() if k=='香港' or k=='澳门'  or k=='台湾'}
港澳台地区_3A_dict = { k: v for k, v in dict_3A.items() if k=='香港' or k=='澳门'  or k=='台湾'}
港澳台地区_无_dict = { k: v for k, v in dict_无.items() if k=='香港' or k=='澳门'  or k=='台湾'}


# 四川
四川_景点好评率 = len(df_new[df_new.省.str.contains('四川')][(df_new[df_new.省.str.contains('四川')]["评分"]>4)&(df_new[df_new.省.str.contains('四川')]["评分"]<=5)])/len(df_new[df_new.省.str.contains('四川')])
四川_景点中评率 = len(df_new[df_new.省.str.contains('四川')][(df_new[df_new.省.str.contains('四川')]["评分"]>3)&(df_new[df_new.省.str.contains('四川')]["评分"]<=4)])/len(df_new[df_new.省.str.contains('四川')])
四川_景点差评率 = len(df_new[df_new.省.str.contains('四川')][(df_new[df_new.省.str.contains('四川')]["评分"]>=0)&(df_new[df_new.省.str.contains('四川')]["评分"]<=2)])/len(df_new[df_new.省.str.contains('四川')])
四川景点好评率 = round(四川_景点好评率, 2)
四川景点中评率 = round(四川_景点中评率, 2)
四川景点差评率 = round(四川_景点差评率, 2)

# 广东
广东_景点好评率 = len(df_new[df_new.省.str.contains('广东')][(df_new[df_new.省.str.contains('广东')]["评分"]>4)&(df_new[df_new.省.str.contains('广东')]["评分"]<=5)])/len(df_new[df_new.省.str.contains('广东')])
广东_景点中评率 = len(df_new[df_new.省.str.contains('广东')][(df_new[df_new.省.str.contains('广东')]["评分"]>3)&(df_new[df_new.省.str.contains('广东')]["评分"]<=4)])/len(df_new[df_new.省.str.contains('广东')])
广东_景点差评率 = len(df_new[df_new.省.str.contains('广东')][(df_new[df_new.省.str.contains('广东')]["评分"]>=0)&(df_new[df_new.省.str.contains('广东')]["评分"]<=2)])/len(df_new[df_new.省.str.contains('广东')])
广东景点好评率 = round(广东_景点好评率, 2)
广东景点中评率 = round(广东_景点中评率, 2)
广东景点差评率 = round(广东_景点差评率, 2)

# 北京
北京_景点好评率 = len(df_new[df_new.省.str.contains('北京')][(df_new[df_new.省.str.contains('北京')]["评分"]>4)&(df_new[df_new.省.str.contains('北京')]["评分"]<=5)])/len(df_new[df_new.省.str.contains('北京')])
北京_景点中评率 = len(df_new[df_new.省.str.contains('北京')][(df_new[df_new.省.str.contains('北京')]["评分"]>3)&(df_new[df_new.省.str.contains('北京')]["评分"]<=4)])/len(df_new[df_new.省.str.contains('北京')])
北京_景点差评率 = len(df_new[df_new.省.str.contains('北京')][(df_new[df_new.省.str.contains('北京')]["评分"]>=0)&(df_new[df_new.省.str.contains('北京')]["评分"]<=2)])/len(df_new[df_new.省.str.contains('北京')])
北京景点好评率 = round(北京_景点好评率, 2)
北京景点中评率 = round(北京_景点中评率, 2)
北京景点差评率 = round(北京_景点差评率, 2)

# 海南
海南_景点好评率 = len(df_new[df_new.省.str.contains('海南')][(df_new[df_new.省.str.contains('海南')]["评分"]>4)&(df_new[df_new.省.str.contains('海南')]["评分"]<=5)])/len(df_new[df_new.省.str.contains('海南')])
海南_景点中评率 = len(df_new[df_new.省.str.contains('海南')][(df_new[df_new.省.str.contains('海南')]["评分"]>3)&(df_new[df_new.省.str.contains('海南')]["评分"]<=4)])/len(df_new[df_new.省.str.contains('海南')])
海南_景点差评率 = len(df_new[df_new.省.str.contains('海南')][(df_new[df_new.省.str.contains('海南')]["评分"]>=0)&(df_new[df_new.省.str.contains('海南')]["评分"]<=2)])/len(df_new[df_new.省.str.contains('海南')])
海南景点好评率 = round(海南_景点好评率, 2)
海南景点中评率 = round(海南_景点中评率, 2)
海南景点差评率 = round(海南_景点差评率, 2)


# 江苏
江苏_景点好评率 = len(df_new[df_new.省.str.contains('江苏')][(df_new[df_new.省.str.contains('江苏')]["评分"]>4)&(df_new[df_new.省.str.contains('江苏')]["评分"]<=5)])/len(df_new[df_new.省.str.contains('江苏')])
江苏_景点中评率 = len(df_new[df_new.省.str.contains('江苏')][(df_new[df_new.省.str.contains('江苏')]["评分"]>3)&(df_new[df_new.省.str.contains('江苏')]["评分"]<=4)])/len(df_new[df_new.省.str.contains('江苏')])
江苏_景点差评率 = len(df_new[df_new.省.str.contains('江苏')][(df_new[df_new.省.str.contains('江苏')]["评分"]>=0)&(df_new[df_new.省.str.contains('江苏')]["评分"]<=2)])/len(df_new[df_new.省.str.contains('江苏')])
江苏景点好评率 = round(江苏_景点好评率, 2)
江苏景点中评率 = round(江苏_景点中评率, 2)
江苏景点差评率 = round(江苏_景点差评率, 2)


jd_top10 = df_new.sort_values('销售量',ascending=False)[0:10]
jd_top10_name = jd_top10['景点名称'].tolist()
jd_top10_num = jd_top10['销售量'].tolist()




def reli():
	 # 各省旅游景点门票销售情况
    pivot_table = df_new.groupby(['省']).agg({"销售量":["sum"]}).reset_index()
    s = pivot_table['省'].tolist()
    x = pivot_table['销售量']['sum'].tolist()
    xs = dict(zip(s,x))
    df3 = pd.DataFrame([xs]).T.reset_index().rename(columns={'index':'省',0:'景点门票销售量'}).sort_values('景点门票销售量',ascending=False)

    # 热力图的绘制
    c = (
	    Geo()
	    .add_schema(maptype="china")
	    .add("geo", [list(z) for z in zip(pivot_table['省'].tolist(), pivot_table['销售量']['sum'].tolist())])
	    .set_series_opts(label_opts=opts.LabelOpts(is_show=False))
	    .set_global_opts(
	        visualmap_opts=opts.VisualMapOpts(
                 min_ = 2200,
                 max_ = 5000
	        	), title_opts=opts.TitleOpts(title="各省旅游景点热门情况-地图")
	    )
	    .render("geo_base.html")
	)

	    # 条形图的绘制
    bar1 = go.Bar(y=df3['景点门票销售量'], x=df3['省'],
              text = df3['景点门票销售量'], textposition = 'outside', name='Auckland')# textpositon 是将text数据显示在条形柱上， outside是外面， inside是里面 ；name 和上述Scatter一样
    fig = go.Figure(bar1)
    fig.update_layout(
        title = '各省旅游景点门票销售情况-条形图',
        xaxis_title = '省',
        yaxis_title = '景点门票销售量'
    )
    py.offline.plot(fig, filename="各省旅游景点门票销售情况.html",auto_open=False)


       # 不同价位区间消费情况
    i = '门票'
    df_不同价位区间消费情况 = payment(i)

    # 饼图的绘制
    labels = df_不同价位区间消费情况['价格区间']
    values = df_不同价位区间消费情况['消费人群总量']

    fig = go.Figure(data=[go.Pie(labels=labels, values=values, textinfo='label+percent',
                                 insidetextorientation='radial'
                                )])
    py.offline.plot(fig, filename="不同价位区间消费情况.html",auto_open=False)



# 2020年各地区五一旅游情况
def hd():
	# 华东地区
	上海 = [3,33,8,171]
	江苏 = [39,50,11,115]
	浙江 = [25,59,11,120]
	山东 = [18,82,20,95]
	安徽 = [17,65,16,116]
	江西 = [12,41,6,156]
	福建 = [9,34,10,161]
	bar = Bar()
	bar.add_xaxis(star_list)
	bar.add_yaxis("上海", 上海)
	bar.add_yaxis("江苏", 江苏)
	bar.add_yaxis("浙江", 浙江)
	bar.add_yaxis("山东", 山东)
	bar.add_yaxis("安徽", 安徽)
	bar.add_yaxis("江西", 江西)
	bar.add_yaxis("福建", 福建)
	bar.set_global_opts(title_opts=opts.TitleOpts(title="华东地区景点不同星级数量"))

	bar.render("华东地区景点不同星级数量.html")

# 2020年各地区五一旅游情况
def hn():
	# 华南地区
	广东 = [13,52,6,156]
	广西 = [10,65,15,124]
	海南 = [6,18,8,180]

	bar = Bar()
	bar.add_xaxis(star_list)
	bar.add_yaxis("广东", 广东)
	bar.add_yaxis("广西", 广西)
	bar.add_yaxis("海南", 海南)
	bar.set_global_opts(title_opts=opts.TitleOpts(title="华南地区景点不同星级数量"))

	bar.render('华南地区景点不同星级数量.html')


def hb():
	# 华北地区
	# 华北地区
	
	天津 = [2,22,12,180]
	北京 = [10,52,28,124]
	河北 = [12,66,13,123]
	山西 = [9,59,3,142]
	内蒙古 = [10,47,19,139]
	广东 = [13,52,6,156]
	广西 = [10,65,15,124]
	海南 = [6,18,8,180]
	bar = Bar()
	bar.add_xaxis(star_list)
	bar.add_yaxis("北京", 北京)
	bar.add_yaxis("河北", 河北)
	bar.add_yaxis("山西", 山西)
	bar.add_yaxis("内蒙古", 内蒙古)
	bar.add_yaxis("天津", 天津)
	bar.set_global_opts(title_opts=opts.TitleOpts(title="华北地区景点不同星级数量"))
	bar.render('华北地区景点不同星级数量.html')


def hz():
# 华中地区
	湖南 = [12,36,12,153]
	湖北 = [17,57,17,121]
	河南 = [19,62,12,121]
	bar = Bar()
	bar.add_xaxis(star_list)
	bar.add_yaxis("湖南", 湖南)
	bar.add_yaxis("湖北", 湖北)
	bar.add_yaxis("河南", 河南)

	bar.set_global_opts(title_opts=opts.TitleOpts(title="华中地区景点不同星级数量"))
	bar.render('华中地区景点不同星级数量.html')


def xn():
# 西南地区
	云南 = [9,48,13,145]
	四川 = [12,61,5,137]
	西藏 = [4,6,10,196]
	贵州 = [6,28,14,167]
	重庆 = [13,39,10,152]
	bar = Bar()
	bar.add_xaxis(star_list)
	bar.add_yaxis("云南", 云南)
	bar.add_yaxis("四川", 四川)
	bar.add_yaxis("西藏", 西藏)
	bar.add_yaxis("贵州", 贵州)
	bar.add_yaxis("重庆", 重庆)

	bar.set_global_opts(title_opts=opts.TitleOpts(title="西南地区景点不同星级数量"))

	bar.render("西南地区景点不同星级数量.html")


def xb():
	# 西北地区
	宁夏 = [4,16,12,181]
	新疆 = [14,34,33,133]
	甘肃 = [4,49,11,149]
	陕西 = [11,38,19,147]
	青海 = [6,18,31,157]
	bar = Bar()
	bar.add_xaxis(star_list)
	bar.add_yaxis("宁夏", 宁夏)
	bar.add_yaxis("新疆", 新疆)
	bar.add_yaxis("甘肃", 甘肃)
	bar.add_yaxis("陕西", 陕西)
	bar.add_yaxis("青海", 青海)

	bar.set_global_opts(title_opts=opts.TitleOpts(title="西北地区景点不同星级数量"))

	bar.render('西北地区景点不同星级数量.html')


def db():
	# 东北地区
	吉林 = [8,26,19,161]
	辽宁 = [6,45,14,148]
	黑龙江 = [5,39,35,134]
	bar = Bar()
	bar.add_xaxis(star_list)
	bar.add_yaxis("吉林", 吉林)
	bar.add_yaxis("辽宁", 辽宁)
	bar.add_yaxis("黑龙江", 黑龙江)

	bar.set_global_opts(title_opts=opts.TitleOpts(title="东北地区景点不同星级数量"))

	bar.render('东北地区景点不同星级数量.html')


def gat():
	# 港澳台地区
	香港 = [0,0,0,207]
	澳门 = [0,0,1,205]
	台湾 = [0,0,0,215]
	bar = Bar()
	bar.add_xaxis(star_list)
	bar.add_yaxis("香港", 香港)
	bar.add_yaxis("澳门", 澳门)
	bar.add_yaxis("台湾", 台湾)

	bar.set_global_opts(title_opts=opts.TitleOpts(title="港澳台地区景点不同星级数量"))

	bar.render('港澳台地区景点不同星级数量.html')


def jingdian():
	c = Funnel()
	c.add(
		"景点",
		[list(z) for z in zip(jd_top10_name, jd_top10_num)],
		label_opts=opts.LabelOpts(position="inside"),
		)
	c.set_global_opts(
		title_opts=opts.TitleOpts(title="2020年五一期间全国最受欢迎的十大景点-漏斗图"),
		legend_opts=opts.LegendOpts(
		# 是否显示图例组件
		is_show = True,
		type_ = 'plain',
		selected_mode = True,
		pos_left = '90%',
		pos_bottom='20%'
		)
		)
	c.render("2020年五一期间全国最受欢迎的十大景点-漏斗图.html")



	words = [
	    ('艺术馆','38'),
	    ('博物馆','181'),
	    ('公园','509'),
	    ('植物园','37'),
	    ('动物园','62'),
	    ('主题乐园','26'),
	    ('纪念馆','27'),
	    ('海洋馆','16'),
	    ('度假村','65'),
	    ('滑雪场','75'),
	    ('古镇','53'), 
	    ('游乐园','23')
	]
	c = WordCloud()
	c.add("", words, word_size_range=[20, 200], shape=SymbolType.DIAMOND)
	c.set_global_opts(title_opts=opts.TitleOpts(title="2020年五一全国热门景点类型-词云图"))

	c.render('2020年五一全国热门景点类型-词云图.html')


		    # 条形图的绘制
	children_ascending_df = df_new[df_new.省.str.contains('四川')].sort_values('儿童旅客量',ascending=False)
	c_df = children_ascending_df[0:10]
	景点名称_list = c_df['景点名称'].tolist()
	儿童旅客量_list = c_df['儿童旅客量'].tolist()
	bar1 = go.Bar(y=儿童旅客量_list , x=景点名称_list,
	text = 儿童旅客量_list, textposition = 'outside', name='Auckland')# textpositon 是将text数据显示在条形柱上， outside是外面， inside是里面 ；name 和上述Scatter一样
	fig = go.Figure(bar1)
	fig.update_layout(
		title = '四川省-最受小朋友们喜爱的十大景点-条形图',
		xaxis_title = '景点名称',
		yaxis_title = '儿童旅客量'
		)
	py.offline.plot(fig, filename="四川省-最受小朋友们喜爱的十大景点.html",auto_open=False)



def gd():
	c = Funnel()
	c.add(
		"景点",
		[list(z) for z in zip(jd_top10_name, jd_top10_num)],
		label_opts=opts.LabelOpts(position="inside"),
		)
	c.set_global_opts(
		title_opts=opts.TitleOpts(title="2020年五一期间全国最受欢迎的十大景点-漏斗图"),
		legend_opts=opts.LegendOpts(
		# 是否显示图例组件
		is_show = True,
		type_ = 'plain',
		selected_mode = True,
		pos_left = '90%',
		pos_bottom='20%'
		)
		)
	c.render("2020年五一期间全国最受欢迎的十大景点-漏斗图.html")


	words = [
	    ('艺术馆','38'),
	    ('博物馆','181'),
	    ('公园','509'),
	    ('植物园','37'),
	    ('动物园','62'),
	    ('主题乐园','26'),
	    ('纪念馆','27'),
	    ('海洋馆','16'),
	    ('度假村','65'),
	    ('滑雪场','75'),
	    ('古镇','53'), 
	    ('游乐园','23')
	]
	c = WordCloud()
	c.add("", words, word_size_range=[20, 200], shape=SymbolType.DIAMOND)
	c.set_global_opts(title_opts=opts.TitleOpts(title="2020年五一全国热门景点类型-词云图"))

	c.render('2020年五一全国热门景点类型-词云图.html')



	    # 条形图的绘制
	children_ascending_df = df_new[df_new.省.str.contains('广东')].sort_values('儿童旅客量',ascending=False)
	c_df = children_ascending_df[0:10]
	景点名称_list = c_df['景点名称'].tolist()
	儿童旅客量_list = c_df['儿童旅客量'].tolist()
	bar1 = go.Bar(y=儿童旅客量_list , x=景点名称_list,
	text = 儿童旅客量_list, textposition = 'outside', name='Auckland')# textpositon 是将text数据显示在条形柱上， outside是外面， inside是里面 ；name 和上述Scatter一样
	fig = go.Figure(bar1)
	fig.update_layout(
		title = '广东省-最受小朋友们喜爱的十大景点-条形图',
		xaxis_title = '景点名称',
		yaxis_title = '儿童旅客量'
		)
	py.offline.plot(fig, filename="广东省-最受小朋友们喜爱的十大景点.html",auto_open=False)



def bj():
	c = Funnel()
	c.add(
		"景点",
		[list(z) for z in zip(jd_top10_name, jd_top10_num)],
		label_opts=opts.LabelOpts(position="inside"),
		)
	c.set_global_opts(
		title_opts=opts.TitleOpts(title="2020年五一期间全国最受欢迎的十大景点-漏斗图"),
		legend_opts=opts.LegendOpts(
		# 是否显示图例组件
		is_show = True,
		type_ = 'plain',
		selected_mode = True,
		pos_left = '90%',
		pos_bottom='20%'
		)
		)
	c.render("2020年五一期间全国最受欢迎的十大景点-漏斗图.html")


	words = [
	    ('艺术馆','38'),
	    ('博物馆','181'),
	    ('公园','509'),
	    ('植物园','37'),
	    ('动物园','62'),
	    ('主题乐园','26'),
	    ('纪念馆','27'),
	    ('海洋馆','16'),
	    ('度假村','65'),
	    ('滑雪场','75'),
	    ('古镇','53'), 
	    ('游乐园','23')
	]
	c = WordCloud()
	c.add("", words, word_size_range=[20, 200], shape=SymbolType.DIAMOND)
	c.set_global_opts(title_opts=opts.TitleOpts(title="2020年五一全国热门景点类型-词云图"))

	c.render('2020年五一全国热门景点类型-词云图.html')



	    # 条形图的绘制
	children_ascending_df = df_new[df_new.省.str.contains('北京')].sort_values('儿童旅客量',ascending=False)
	c_df = children_ascending_df[0:10]
	景点名称_list = c_df['景点名称'].tolist()
	儿童旅客量_list = c_df['儿童旅客量'].tolist()
	bar1 = go.Bar(y=儿童旅客量_list , x=景点名称_list,
	text = 儿童旅客量_list, textposition = 'outside', name='Auckland')# textpositon 是将text数据显示在条形柱上， outside是外面， inside是里面 ；name 和上述Scatter一样
	fig = go.Figure(bar1)
	fig.update_layout(
		title = '北京省-最受小朋友们喜爱的十大景点-条形图',
		xaxis_title = '景点名称',
		yaxis_title = '儿童旅客量'
		)
	py.offline.plot(fig, filename="北京省-最受小朋友们喜爱的十大景点.html",auto_open=False)



def hain():
	c = Funnel()
	c.add(
		"景点",
		[list(z) for z in zip(jd_top10_name, jd_top10_num)],
		label_opts=opts.LabelOpts(position="inside"),
		)
	c.set_global_opts(
		title_opts=opts.TitleOpts(title="2020年五一期间全国最受欢迎的十大景点-漏斗图"),
		legend_opts=opts.LegendOpts(
		# 是否显示图例组件
		is_show = True,
		type_ = 'plain',
		selected_mode = True,
		pos_left = '90%',
		pos_bottom='20%'
		)
		)
	c.render("2020年五一期间全国最受欢迎的十大景点-漏斗图.html")

	words = [
	    ('艺术馆','38'),
	    ('博物馆','181'),
	    ('公园','509'),
	    ('植物园','37'),
	    ('动物园','62'),
	    ('主题乐园','26'),
	    ('纪念馆','27'),
	    ('海洋馆','16'),
	    ('度假村','65'),
	    ('滑雪场','75'),
	    ('古镇','53'), 
	    ('游乐园','23')
	]
	c = WordCloud()
	c.add("", words, word_size_range=[20, 200], shape=SymbolType.DIAMOND)
	c.set_global_opts(title_opts=opts.TitleOpts(title="2020年五一全国热门景点类型-词云图"))

	c.render('2020年五一全国热门景点类型-词云图.html')



	    # 条形图的绘制
	children_ascending_df = df_new[df_new.省.str.contains('海南')].sort_values('儿童旅客量',ascending=False)
	c_df = children_ascending_df[0:10]
	景点名称_list = c_df['景点名称'].tolist()
	儿童旅客量_list = c_df['儿童旅客量'].tolist()
	bar1 = go.Bar(y=儿童旅客量_list , x=景点名称_list,
	text = 儿童旅客量_list, textposition = 'outside', name='Auckland')# textpositon 是将text数据显示在条形柱上， outside是外面， inside是里面 ；name 和上述Scatter一样
	fig = go.Figure(bar1)
	fig.update_layout(
		title = '海南省-最受小朋友们喜爱的十大景点-条形图',
		xaxis_title = '景点名称',
		yaxis_title = '儿童旅客量'
		)
	py.offline.plot(fig, filename="海南省-最受小朋友们喜爱的十大景点.html",auto_open=False)



def js():
	c = Funnel()
	c.add(
		"景点",
		[list(z) for z in zip(jd_top10_name, jd_top10_num)],
		label_opts=opts.LabelOpts(position="inside"),
		)
	c.set_global_opts(
		title_opts=opts.TitleOpts(title="2020年五一期间全国最受欢迎的十大景点-漏斗图"),
		legend_opts=opts.LegendOpts(
		# 是否显示图例组件
		is_show = True,
		type_ = 'plain',
		selected_mode = True,
		pos_left = '90%',
		pos_bottom='20%'
		)
		)
	c.render("2020年五一期间全国最受欢迎的十大景点-漏斗图.html")


	words = [
	    ('艺术馆','38'),
	    ('博物馆','181'),
	    ('公园','509'),
	    ('植物园','37'),
	    ('动物园','62'),
	    ('主题乐园','26'),
	    ('纪念馆','27'),
	    ('海洋馆','16'),
	    ('度假村','65'),
	    ('滑雪场','75'),
	    ('古镇','53'), 
	    ('游乐园','23')
	]
	c = WordCloud()
	c.add("", words, word_size_range=[20, 200], shape=SymbolType.DIAMOND)
	c.set_global_opts(title_opts=opts.TitleOpts(title="2020年五一全国热门景点类型-词云图"))

	c.render('2020年五一全国热门景点类型-词云图.html')



	    # 条形图的绘制
	children_ascending_df = df_new[df_new.省.str.contains('江苏')].sort_values('儿童旅客量',ascending=False)
	c_df = children_ascending_df[0:10]
	景点名称_list = c_df['景点名称'].tolist()
	儿童旅客量_list = c_df['儿童旅客量'].tolist()
	bar1 = go.Bar(y=儿童旅客量_list , x=景点名称_list,
	text = 儿童旅客量_list, textposition = 'outside', name='Auckland')# textpositon 是将text数据显示在条形柱上， outside是外面， inside是里面 ；name 和上述Scatter一样
	fig = go.Figure(bar1)
	fig.update_layout(
		title = '江苏省-最受小朋友们喜爱的十大景点-条形图',
		xaxis_title = '景点名称',
		yaxis_title = '儿童旅客量'
		)
	py.offline.plot(fig, filename="江苏省-最受小朋友们喜爱的十大景点.html",auto_open=False)




def sc():
	# 四川
	l1 = (
		Liquid()
		.add("四川景点好评率", [四川景点好评率], center=["60%", "50%"])
		.set_global_opts(title_opts=opts.TitleOpts(title="四川省-景点评价率水球图"))
		)
	l2 = Liquid().add(
		"四川景点差评率",
		[四川景点差评率],
		center=["25%", "50%"],
		label_opts=opts.LabelOpts(
			font_size=50,
			formatter=JsCode(
				"""function (param) {
				return (Math.floor(param.value * 10000) / 100) + '%';
				}"""
				),
			position="inside",
			),
		)
	grid = Grid().add(l1, grid_opts=opts.GridOpts()).add(l2, grid_opts=opts.GridOpts())
	grid.render("四川省-景点评价率水球图.html")



def gdr():
	# 四川
	l1 = (
		Liquid()
		.add("广东景点好评率", [广东景点好评率], center=["60%", "50%"])
		.set_global_opts(title_opts=opts.TitleOpts(title="广东省-景点评价率水球图"))
		)
	l2 = Liquid().add(
		"广东景点差评率",
		[广东景点差评率],
		center=["25%", "50%"],
		label_opts=opts.LabelOpts(
			font_size=50,
			formatter=JsCode(
				"""function (param) {
				return (Math.floor(param.value * 10000) / 100) + '%';
				}"""
				),
			position="inside",
			),
		)
	grid = Grid().add(l1, grid_opts=opts.GridOpts()).add(l2, grid_opts=opts.GridOpts())
	grid.render("广东省-景点评价率水球图.html")
	


def bjr():
	# 北京
	l1 = (
		Liquid()
		.add("北京景点好评率", [北京景点好评率], center=["60%", "50%"])
		.set_global_opts(title_opts=opts.TitleOpts(title="北京市-景点评价率水球图"))
		)
	l2 = Liquid().add(
		"北京景点差评率",
		[北京景点差评率],
		center=["25%", "50%"],
		label_opts=opts.LabelOpts(
			font_size=50,
			formatter=JsCode(
				"""function (param) {
				return (Math.floor(param.value * 10000) / 100) + '%';
				}"""
				),
			position="inside",
			),
		)
	grid = Grid().add(l1, grid_opts=opts.GridOpts()).add(l2, grid_opts=opts.GridOpts())
	grid.render("北京市-景点评价率水球图.html")



def hnr():
	# 海南
	l1 = (
		Liquid()
		.add("海南景点好评率", [海南景点好评率], center=["60%", "50%"])
		.set_global_opts(title_opts=opts.TitleOpts(title="海南省-景点评价率水球图"))
		)
	l2 = Liquid().add(
		"海南景点差评率",
		[海南景点差评率],
		center=["25%", "50%"],
		label_opts=opts.LabelOpts(
			font_size=50,
			formatter=JsCode(
				"""function (param) {
				return (Math.floor(param.value * 10000) / 100) + '%';
				}"""
				),
			position="inside",
			),
		)
	grid = Grid().add(l1, grid_opts=opts.GridOpts()).add(l2, grid_opts=opts.GridOpts())
	grid.render("海南省-景点评价率水球图.html")


def jsr():
	# 江苏
	l1 = (
		Liquid()
		.add("江苏景点好评率", [江苏景点好评率], center=["60%", "50%"])
		.set_global_opts(title_opts=opts.TitleOpts(title="江苏省-景点评价率水球图"))
		)
	l2 = Liquid().add(
		"江苏景点差评率",
		[江苏景点差评率],
		center=["25%", "50%"],
		label_opts=opts.LabelOpts(
			font_size=50,
			formatter=JsCode(
				"""function (param) {
				return (Math.floor(param.value * 10000) / 100) + '%';
				}"""
				),
			position="inside",
			),
		)
	grid = Grid().add(l1, grid_opts=opts.GridOpts()).add(l2, grid_opts=opts.GridOpts())
	grid.render("江苏省-景点评价率水球图.html")

